2.6 表格选择之切片法
切片法的基础结构为df[……],在此基础结构上进行变化,可以选择出行、列、区域。 切片的优点在于简单直接,缺点在于表现形式不够多样化。
行选择 :无论表格的行索引是否设置了标签,都可以按行索引序号先择行
列选择 :分为单列或多列,单列的表示方法是df[“列标签”], 多列表示方法是df[[ “列标签1”,“列标签2”,“列标签3” ……]], 不但可以表示成df[“列标签注”], 还可以表奈 成df.列标签。选择多列则是将索引标签放置在列表、数组、Seires等数据中,最为常见的还是放置在列表中,
区域选择 :就是多行多列的选择。也就是将行、将行、列的选择交叉在一起,书写格式为df[行索引][列索引]
原数据:
import pandas as pd
path = r "D:\Pyobject2023\object\测试\表格之切法.xlsx"
df = pd.read_excel(path, index_col =0)
print(t)
(df)返回:
姓名 | 姓别 | 1月 | 2月 | 3月 | |
---|---|---|---|---|---|
序号 | |||||
NED01 | 小王 | 男 | 87 | 79 | 37 |
NED02 | 小曾 | 女 | 55 | 27 | 48 |
NED03 | 小李 | 男 | 34 | 47 | 85 |
NED04 | 小张 | 女 | 67 | 85 | 59 |
NED05 | 小林 | 男 | 67 | 49 | 76 |
2.6.1行切片
import pandas as pd
path = r "D:\Pyobject2023\object\测试\表格之切法.xlsx"
df = pd.read_excel(path, index_col=0)
t=df[1:3]
print(t)
返回:
姓名 | 姓别 | 1月 | 2月 | 3月 | |
---|---|---|---|---|---|
序号 | |||||
NED02 | 小曾 | 女 | 55 | 27 | 48 |
NED03 | 小李 | 男 | 34 | 47 | 85 |
以实际ID序号
import pandas as pd
path = r "D:\Pyobject2023\object\测试\表格之切法.xlsx"
df = pd.read_excel(path, index_col =0)
t=df[ "NED01":"NED03" ]
print(t)
返回:
姓名 | 姓别 | 1月 | 2月 | 3月 | |
---|---|---|---|---|---|
序号 | |||||
NED01 | 小王 | 男 | 87 | 79 | 37 |
NED02 | 小曾 | 女 | 55 | 27 | 48 |
NED03 | 小李 | 男 | 34 | 47 | 85 |
按行选择,返回的都是DataFrame表格
2.6.2列切片
按单列选择,返回的时一个Seires数据
import pandas as pd
path = r "D:\Pyobject2023\object\测试\表格之切法.xlsx"
df = pd.read_excel(path, index_col =0)
t=df[ "姓名" ]
print(t)
返回:
序号
NED01 小王
NED02 小曾
NED03 小李
NED04 小张
NED05 小林
Name: 姓名, dtype: object
多列选择
import pandas as pd
path = r "D:\Pyobject2023\object\测试\表格之切法.xlsx"
df = pd.read_excel(path, index_col =0)
t=df[[ "姓名","姓别" ]]
print (t)
姓名 | 姓别 | |
---|---|---|
序号 | ||
NED01 | 小王 | 男 |
NED02 | 小曾 | 女 |
NED03 | 小李 | 男 |
NED04 | 小张 | 女 |
NED05 | 小林 | 男 |
2.6.3区域切片(行列交叉)
import pandas as pd
path = r "D:\Pyobject2023\object\测试\表格之切法.xlsx"
df = pd.read_excel(path,index_col=0)
t=df[1:3][[ "姓名","姓别","1月","2月" ]]
print(t)
返回:
姓名 | 姓别 | 1月 | 2月 | |
---|---|---|---|---|
序号 | ||||
NED02 | 小曾 | 女 | 55 | 27 |
NED03 | 小李 | 男 | 34 | 47 |